package com.eims.sls_app.ui.win_dialog.widget;

import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.RelativeLayout;
import android.widget.TextView;

import bls.juejin.cn.R;
import com.eims.sls_app.ui.MainActivity;

public class NiftyDialogBuilder extends Dialog implements DialogInterface {

	// private final String defTextColor="#FFFFFFFF";
	//
	// private final String defDividerColor="#11000000";
	//
	// private final String defMsgColor="#FFFFFFFF";
	//
	// private final String defDialogColor="#FFE74C3C";

	private MainActivity activity;

	private Effectstype type = null;

	//
	private RelativeLayout mRelativeLayoutView;
	//
	// private LinearLayout mLinearLayoutMsgView;
	//
	// private LinearLayout mLinearLayoutTopView;
	//
	// private FrameLayout mFrameLayoutCustomView;
	//
	// private View mDialogView;
	//
	// private View mDivider;

	private TextView dialog_win_tv;
	//
	// private TextView mMessage;
	//
	// private ImageView mIcon;
	//
	private Button dialog_btn_find;
	//
	// private Button mButton2;

	private int mDuration = -1;

	private static int mOrientation = 1;

	private boolean isCancelable = true;

	private volatile static NiftyDialogBuilder instance;

	public NiftyDialogBuilder(Context context) {
		super(context);
		init(context);
		activity = (MainActivity) context;
	}

	public NiftyDialogBuilder(Context context, int theme) {
		super(context, theme);
		init(context);
		activity = (MainActivity) context;
	}

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		WindowManager.LayoutParams params = getWindow().getAttributes();
		params.height = ViewGroup.LayoutParams.MATCH_PARENT;
		params.width = ViewGroup.LayoutParams.MATCH_PARENT;
		getWindow().setAttributes(
				(android.view.WindowManager.LayoutParams) params);

	}

	public static NiftyDialogBuilder getInstance(Context context) {

		int ort = context.getResources().getConfiguration().orientation;
		if (mOrientation != ort) {
			mOrientation = ort;
			instance = null;
		}

		if (instance == null) {
			synchronized (NiftyDialogBuilder.class) {
				if (instance == null) {
					instance = new NiftyDialogBuilder(context,
							R.style.dialog_untran);
				}
			}
		}
		return instance;

	}

	private void init(Context context) {
		View mDialogView = View.inflate(context, R.layout.dialog_win, null);
		dialog_win_tv = (TextView) mDialogView.findViewById(R.id.dialog_win_tv);
		dialog_btn_find = (Button) mDialogView
				.findViewById(R.id.dialog_btn_find);
		mRelativeLayoutView = (RelativeLayout) mDialogView
				.findViewById(R.id.mRelativeLayoutView);
		dialog_btn_find.setOnClickListener(new View.OnClickListener() {

			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				activity.toFindWininfo();// 查看中奖详情
				dismiss();
			}
		});
		dialog_win_tv.setText("10000元");
		setContentView(mDialogView);
		this.setOnShowListener(new OnShowListener() {
			@Override
			public void onShow(DialogInterface dialogInterface) {
				if (type == null) {
					type = Effectstype.Shake;
				}
				start(type);
			}
		});
		mRelativeLayoutView.setOnClickListener(new View.OnClickListener() {
			@Override
			public void onClick(View view) {
				if (isCancelable)
					dismiss();
			}
		});
	}

	// public void toDefault(){
	// mTitle.setTextColor(Color.parseColor(defTextColor));
	// mDivider.setBackgroundColor(Color.parseColor(defDividerColor));
	// mMessage.setTextColor(Color.parseColor(defMsgColor));
	// mLinearLayoutView.setBackgroundColor(Color.parseColor(defDialogColor));
	// }

	// public NiftyDialogBuilder withDividerColor(String colorString) {
	// mDivider.setBackgroundColor(Color.parseColor(colorString));
	// return this;
	// }
	//
	//
	// public NiftyDialogBuilder withTitle(CharSequence title) {
	// toggleView(mLinearLayoutTopView,title);
	// mTitle.setText(title);
	// return this;
	// }
	//
	// public NiftyDialogBuilder withTitleColor(String colorString) {
	// mTitle.setTextColor(Color.parseColor(colorString));
	// return this;
	// }
	//
	// public NiftyDialogBuilder withMessage(int textResId) {
	// toggleView(mLinearLayoutMsgView,textResId);
	// mMessage.setText(textResId);
	// return this;
	// }
	//
	// public NiftyDialogBuilder withMessage(CharSequence msg) {
	// toggleView(mLinearLayoutMsgView,msg);
	// mMessage.setText(msg);
	// return this;
	// }
	// public NiftyDialogBuilder withMessageColor(String colorString) {
	// mMessage.setTextColor(Color.parseColor(colorString));
	// return this;
	// }
	//
	// public NiftyDialogBuilder withIcon(int drawableResId) {
	// mIcon.setImageResource(drawableResId);
	// return this;
	// }
	//
	// public NiftyDialogBuilder withIcon(Drawable icon) {
	// mIcon.setImageDrawable(icon);
	// return this;
	// }
	//
	// public NiftyDialogBuilder withDuration(int duration) {
	// this.mDuration=duration;
	// return this;
	// }
	//
	public NiftyDialogBuilder withEffect(Effectstype type) {
		this.type = type;
		return this;
	}

	// public NiftyDialogBuilder withButtonDrawable(int resid) {
	// mButton1.setBackgroundResource(resid);
	// mButton2.setBackgroundResource(resid);
	// return this;
	// }
	// public NiftyDialogBuilder withButton1Text(CharSequence text) {
	// mButton1.setVisibility(View.VISIBLE);
	// mButton1.setText(text);
	//
	// return this;
	// }
	// public NiftyDialogBuilder withButton2Text(CharSequence text) {
	// mButton2.setVisibility(View.VISIBLE);
	// mButton2.setText(text);
	// return this;
	// }
	// public NiftyDialogBuilder setButton1Click(View.OnClickListener click) {
	// mButton1.setOnClickListener(click);
	// return this;
	// }
	//
	// public NiftyDialogBuilder setButton2Click(View.OnClickListener click) {
	// mButton2.setOnClickListener(click);
	// return this;
	// }
	//
	//
	// public NiftyDialogBuilder setCustomView(int resId, Context context) {
	// View customView = View.inflate(context, resId, null);
	// if (mFrameLayoutCustomView.getChildCount()>0){
	// mFrameLayoutCustomView.removeAllViews();
	// }
	// mFrameLayoutCustomView.addView(customView);
	// return this;
	// }
	//
	// public NiftyDialogBuilder setCustomView(View view, Context context) {
	// if (mFrameLayoutCustomView.getChildCount()>0){
	// mFrameLayoutCustomView.removeAllViews();
	// }
	// mFrameLayoutCustomView.addView(view);
	//
	// return this;
	// }
	public NiftyDialogBuilder isCancelableOnTouchOutside(boolean cancelable) {
		this.isCancelable = cancelable;
		this.setCanceledOnTouchOutside(cancelable);
		return this;
	}

	public NiftyDialogBuilder isCancelable(boolean cancelable) {
		this.isCancelable = cancelable;
		this.setCancelable(cancelable);
		return this;
	}

	private void toggleView(View view, Object obj) {
		if (obj == null) {
			view.setVisibility(View.GONE);
		} else {
			view.setVisibility(View.VISIBLE);
		}
	}

	@Override
	public void show() {

		// if (mTitle.getText().equals(""))
		// mDialogView.findViewById(R.id.topPanel).setVisibility(View.GONE);

		super.show();
	}

	private void start(Effectstype type) {
		BaseEffects animator = type.getAnimator();
		if (mDuration != -1) {
			animator.setDuration(Math.abs(mDuration));
		}
		animator.start(mRelativeLayoutView);
	}

	@Override
	public void dismiss() {
		super.dismiss();
		// mButton1.setVisibility(View.GONE);
		// mButton2.setVisibility(View.GONE);
	}
}
